/****************************************************************
 *																*		
 * 						      杭州美卓自动化有限公司							*
 *                        www.dmaku.com							*
 *       		  努力创建完善、持续更新插件以及模板			*
 * 																*
****************************************************************/
(function (a) {
    a.fn.slide = function (b) {
        return a.fn.slide.defaults = {
            type: "slide",
            effect: "fade",
            autoPlay: !1,
            delayTime: 500,
            interTime: 2500,
            triggerTime: 150,
            defaultIndex: 0,
            titCell: ".hd li",
            mainCell: ".bd",
            targetCell: null,
            trigger: "mouseover",
            scroll: 1,
            vis: 1,
            titOnClassName: "on",
            autoPage: !1,
            prevCell: ".prev",
            nextCell: ".next",
            pageStateCell: ".pageState",
            opp: !1,
            pnLoop: !0,
            easing: "swing",
            startFun: null,
            endFun: null,
            switchLoad: null,
            playStateCell: ".playState",
            mouseOverStop: !0,
            defaultPlay: !0,
            returnDefault: !1
        },
            this.each(function () {
                var c = a.extend({},
                    a.fn.slide.defaults, b),
                    d = a(this),
                    e = c.effect,
                    f = a(c.prevCell, d),
                    g = a(c.nextCell, d),
                    h = a(c.pageStateCell, d),
                    i = a(c.playStateCell, d),
                    j = a(c.titCell, d),
                    k = j.size(),
                    l = a(c.mainCell, d),
                    m = l.children().size(),
                    n = c.switchLoad,
                    o = a(c.targetCell, d),
                    p = parseInt(c.defaultIndex),
                    q = parseInt(c.delayTime),
                    r = parseInt(c.interTime);
                parseInt(c.triggerTime);
                var P, t = parseInt(c.scroll),
                    u = parseInt(c.vis),
                    v = "false" == c.autoPlay || 0 == c.autoPlay ? !1 : !0,
                    w = "false" == c.opp || 0 == c.opp ? !1 : !0,
                    x = "false" == c.autoPage || 0 == c.autoPage ? !1 : !0,
                    y = "false" == c.pnLoop || 0 == c.pnLoop ? !1 : !0,
                    z = "false" == c.mouseOverStop || 0 == c.mouseOverStop ? !1 : !0,
                    A = "false" == c.defaultPlay || 0 == c.defaultPlay ? !1 : !0,
                    B = "false" == c.returnDefault || 0 == c.returnDefault ? !1 : !0,
                    C = 0,
                    D = 0,
                    E = 0,
                    F = 0,
                    G = c.easing,
                    H = null,
                    I = null,
                    J = null,
                    K = c.titOnClassName,
                    L = j.index(d.find("." + K)),
                    M = p = defaultIndex = -1 == L ? p : L,
                    N = p,
                    O = m >= u ? 0 != m % t ? m % t : t : 0,
                    Q = "leftMarquee" == e || "topMarquee" == e ? !0 : !1,
                    R = function () {
                        a.isFunction(c.startFun) && c.startFun(p, k, d, a(c.titCell, d), l, o, f, g)
                    },
                    S = function () {
                        a.isFunction(c.endFun) && c.endFun(p, k, d, a(c.titCell, d), l, o, f, g)
                    },
                    T = function () {
                        j.removeClass(K),
                            A && j.eq(defaultIndex).addClass(K)
                    };
                if ("menu" == c.type) return A && j.removeClass(K).eq(p).addClass(K),
                    j.hover(function () {
                        P = a(this).find(c.targetCell);
                        var b = j.index(a(this));
                        I = setTimeout(function () {
                            switch (p = b, j.removeClass(K).eq(p).addClass(K), R(), e) {
                                case "fade":
                                    P.stop(!0, !0).animate({
                                        opacity: "show"
                                    },
                                        q, G, S);
                                    break;
                                case "slideDown":
                                    P.stop(!0, !0).animate({
                                        height: "show"
                                    },
                                        q, G, S)
                            }
                        },
                            c.triggerTime)
                    },
                        function () {
                            switch (clearTimeout(I), e) {
                                case "fade":
                                    P.animate({
                                        opacity:
                                            "hide"
                                    },
                                        q, G);
                                    break;
                                case "slideDown":
                                    P.animate({
                                        height:
                                            "hide"
                                    },
                                        q, G)
                            }
                        }),
                    B && d.hover(function () {
                        clearTimeout(J)
                    },
                        function () {
                            J = setTimeout(T, q)
                        }),
                    void 0;
                if (0 == k && (k = m), Q && (k = 2), x) {
                    if (m >= u) if ("leftLoop" == e || "topLoop" == e) k = 0 != m % t ? (0 ^ m / t) + 1 : m / t;
                    else {
                        var U = m - u;
                        k = 1 + parseInt(0 != U % t ? U / t + 1 : U / t),
                            0 >= k && (k = 1)
                    } else k = 1;
                    j.html("");
                    var V = "";
                    if (1 == c.autoPage || "true" == c.autoPage) for (var W = 0; k > W; W++) V += "<li>" + (W + 1) + "</li>";
                    else for (var W = 0; k > W; W++) V += c.autoPage.replace("$", W + 1);
                    j.html(V);
                    var j = j.children()
                }
                if (m >= u) {
                    l.children().each(function () {
                        a(this).width() > E && (E = a(this).width(), D = a(this).outerWidth(!0)),
                            a(this).height() > F && (F = a(this).height(), C = a(this).outerHeight(!0))
                    });
                    var X = l.children(),
                        Y = function () {
                            for (var a = 0; u > a; a++) X.eq(a).clone().addClass("clone").appendTo(l);
                            for (var a = 0; O > a; a++) X.eq(m - a - 1).clone().addClass("clone").prependTo(l)
                        };
                    switch (e) {
                        case "fold":
                            l.css({
                                position:
                                    "relative",
                                width: D,
                                height: C
                            }).children().css({
                                position: "absolute",
                                width: E,
                                left: 0,
                                top: 0,
                                display: "none"
                            });
                            break;
                        case "top":
                            l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + u * C + 'px"></div>').css({
                                top: -(p * t) * C,
                                position: "relative",
                                padding: "0",
                                margin: "0"
                            }).children().css({
                                height: F
                            });
                            break;
                        case "left":
                            l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + u * D + 'px"></div>').css({
                                width: m * D,
                                left: -(p * t) * D,
                                position: "relative",
                                overflow: "hidden",
                                padding: "0",
                                margin: "0"
                            }).children().css({
                                "float": "left",
                                width: E
                            });
                            break;
                        case "leftLoop":
                        case "leftMarquee":
                            Y(),
                                l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + u * D + 'px"></div>').css({
                                    width: (m + u + O) * D,
                                    position: "relative",
                                    overflow: "hidden",
                                    padding: "0",
                                    margin: "0",
                                    left: -(O + p * t) * D
                                }).children().css({
                                    "float": "left",
                                    width: E
                                });
                            break;
                        case "topLoop":
                        case "topMarquee":
                            Y(),
                                l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + u * C + 'px"></div>').css({
                                    height: (m + u + O) * C,
                                    position: "relative",
                                    padding: "0",
                                    margin: "0",
                                    top: -(O + p * t) * C
                                }).children().css({
                                    height: F
                                })
                    }
                }
                var Z = function (a) {
                    var b = a * t;
                    return a == k ? b = m : -1 == a && 0 != m % t && (b = -m % t),
                        b
                },
                    $ = function (b) {
                        var c = function (c) {
                            for (var d = c; u + c > d; d++) b.eq(d).find("img[" + n + "]").each(function () {
                                var b = a(this);
                                if (b.attr("src", b.attr(n)).removeAttr(n), l.find(".clone")[0]) for (var c = l.children(), d = 0; c.size() > d; d++) c.eq(d).find("img[" + n + "]").each(function () {
                                    a(this).attr(n) == b.attr("src") && a(this).attr("src", a(this).attr(n)).removeAttr(n)
                                })
                            })
                        };
                        switch (e) {
                            case "fade":
                            case "fold":
                            case "top":
                            case "left":
                            case "slideDown":
                                c(p * t);
                                break;
                            case "leftLoop":
                            case "topLoop":
                                c(O + Z(N));
                                break;
                            case "leftMarquee":
                            case "topMarquee":
                                var d = "leftMarquee" == e ? l.css("left").replace("px", "") : l.css("top").replace("px", ""),
                                    f = "leftMarquee" == e ? D : C,
                                    g = O;
                                if (0 != d % f) {
                                    var h = Math.abs(0 ^ d / f);
                                    g = 1 == p ? O + h : O + h - 1
                                }
                                c(g)
                        }
                    },
                    _ = function (a) {
                        if (!A || M != p || a || Q) {
                            if (Q ? p >= 1 ? p = 1 : 0 >= p && (p = 0) : (N = p, p >= k ? p = 0 : 0 > p && (p = k - 1)), R(), null != n && $(l.children()), o[0] && (P = o.eq(p), null != n && $(o), "slideDown" == e ? (o.not(P).stop(!0, !0).slideUp(q), P.slideDown(q, G,
                                function () {
                                    l[0] || S()
                                })) : (o.not(P).stop(!0, !0).hide(), P.animate({
                                    opacity: "show"
                                },
                                    q,
                                    function () {
                                        l[0] || S()
                                    }))), m >= u) switch (e) {
                                        case "fade":
                                            l.children().stop(!0, !0).eq(p).animate({
                                                opacity: "show"
                                            },
                                                q, G,
                                                function () {
                                                    S()
                                                }).siblings().hide();
                                            break;
                                        case "fold":
                                            l.children().stop(!0, !0).eq(p).animate({
                                                opacity: "show"
                                            },
                                                q, G,
                                                function () {
                                                    S()
                                                }).siblings().animate({
                                                    opacity: "hide"
                                                },
                                                    q, G);
                                            break;
                                        case "top":
                                            l.stop(!0, !1).animate({
                                                top: -p * t * C
                                            },
                                                q, G,
                                                function () {
                                                    S()
                                                });
                                            break;
                                        case "left":
                                            l.stop(!0, !1).animate({
                                                left: -p * t * D
                                            },
                                                q, G,
                                                function () {
                                                    S()
                                                });
                                            break;
                                        case "leftLoop":
                                            var b = N;
                                            l.stop(!0, !0).animate({
                                                left: -(Z(N) + O) * D
                                            },
                                                q, G,
                                                function () {
                                                    - 1 >= b ? l.css("left", -(O + (k - 1) * t) * D) : b >= k && l.css("left", -O * D),
                                                    S()
                                                });
                                            break;
                                        case "topLoop":
                                            var b = N;
                                            l.stop(!0, !0).animate({
                                                top: -(Z(N) + O) * C
                                            },
                                                q, G,
                                                function () {
                                                    - 1 >= b ? l.css("top", -(O + (k - 1) * t) * C) : b >= k && l.css("top", -O * C),
                                                    S()
                                                });
                                            break;
                                        case "leftMarquee":
                                            var c = l.css("left").replace("px", "");
                                            0 == p ? l.animate({
                                                left: ++c
                                            },
                                                0,
                                                function () {
                                                    l.css("left").replace("px", "") >= 0 && l.css("left", -m * D)
                                                }) : l.animate({
                                                    left: --c
                                                },
                                                    0,
                                                    function () {
                                                        - (m + O) * D >= l.css("left").replace("px", "") && l.css("left", -O * D)
                                                    });
                                            break;
                                        case "topMarquee":
                                            var d = l.css("top").replace("px", "");
                                            0 == p ? l.animate({
                                                top: ++d
                                            },
                                                0,
                                                function () {
                                                    l.css("top").replace("px", "") >= 0 && l.css("top", -m * C)
                                                }) : l.animate({
                                                    top: --d
                                                },
                                                    0,
                                                    function () {
                                                        - (m + O) * C >= l.css("top").replace("px", "") && l.css("top", -O * C)
                                                    })
                                    }
                            j.removeClass(K).eq(p).addClass(K),
                                M = p,
                                y || (g.removeClass("nextStop"), f.removeClass("prevStop"), 0 == p && f.addClass("prevStop"), p == k - 1 && g.addClass("nextStop")),
                                h.html("<span>" + (p + 1) + "</span>/" + k)
                        }
                    };
                A && _(!0),
                    B && d.hover(function () {
                        clearTimeout(J)
                    },
                        function () {
                            J = setTimeout(function () {
                                p = defaultIndex,
                                    A ? _() : "slideDown" == e ? P.slideUp(q, T) : P.animate({
                                        opacity: "hide"
                                    },
                                        q, T),
                                    M = p
                            },
                                300)
                        });
                var ab = function (a) {
                    H = setInterval(function () {
                        w ? p-- : p++,
                            _()
                    },
                        a ? a : r)
                },
                    bb = function (a) {
                        H = setInterval(_, a ? a : r)
                    },
                    cb = function () {
                        z || (clearInterval(H), ab())
                    },
                    db = function () {
                        (y || p != k - 1) && (p++, _(), Q || cb())
                    },
                    eb = function () {
                        (y || 0 != p) && (p--, _(), Q || cb())
                    },
                    fb = function () {
                        clearInterval(H),
                            Q ? bb() : ab(),
                            i.removeClass("pauseState")
                    },
                    gb = function () {
                        clearInterval(H),
                            i.addClass("pauseState")
                    };
                if (v ? Q ? (w ? p-- : p++, bb(), z && l.hover(gb, fb)) : (ab(), z && d.hover(gb, fb)) : (Q && (w ? p-- : p++), i.addClass("pauseState")), i.click(function () {
                    i.hasClass("pauseState") ? fb() : gb()
                }), "mouseover" == c.trigger ? j.hover(function () {
                    var a = j.index(this);
                    I = setTimeout(function () {
                        p = a,
                            _(),
                            cb()
                    },
                        c.triggerTime)
                },
                    function () {
                        clearTimeout(I)
                    }) : j.click(function () {
                        p = j.index(this),
                            _(),
                            cb()
                    }), Q) {
                    if (g.mousedown(db), f.mousedown(eb), y) {
                        var hb, ib = function () {
                            hb = setTimeout(function () {
                                clearInterval(H),
                                    bb(0 ^ r / 10)
                            },
                                150)
                        },
                            jb = function () {
                                clearTimeout(hb),
                                    clearInterval(H),
                                    bb()
                            };
                        g.mousedown(ib),
                            g.mouseup(jb),
                            f.mousedown(ib),
                            f.mouseup(jb)
                    }
                    "mouseover" == c.trigger && (g.hover(db,
                        function () { }), f.hover(eb,
                            function () { }))
                } else g.click(db),
                    f.click(eb)
            })
    }
})(jQuery),
    jQuery.easing.jswing = jQuery.easing.swing,
    jQuery.extend(jQuery.easing, {
        def: "easeOutQuad",
        swing: function (a, b, c, d, e) {
            return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
        },
        easeInQuad: function (a, b, c, d, e) {
            return d * (b /= e) * b + c
        },
        easeOutQuad: function (a, b, c, d, e) {
            return - d * (b /= e) * (b - 2) + c
        },
        easeInOutQuad: function (a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
        },
        easeInCubic: function (a, b, c, d, e) {
            return d * (b /= e) * b * b + c
        },
        easeOutCubic: function (a, b, c, d, e) {
            return d * ((b = b / e - 1) * b * b + 1) + c
        },
        easeInOutCubic: function (a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c
        },
        easeInQuart: function (a, b, c, d, e) {
            return d * (b /= e) * b * b * b + c
        },
        easeOutQuart: function (a, b, c, d, e) {
            return - d * ((b = b / e - 1) * b * b * b - 1) + c
        },
        easeInOutQuart: function (a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c
        },
        easeInQuint: function (a, b, c, d, e) {
            return d * (b /= e) * b * b * b * b + c
        },
        easeOutQuint: function (a, b, c, d, e) {
            return d * ((b = b / e - 1) * b * b * b * b + 1) + c
        },
        easeInOutQuint: function (a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c
        },
        easeInSine: function (a, b, c, d, e) {
            return - d * Math.cos(b / e * (Math.PI / 2)) + d + c
        },
        easeOutSine: function (a, b, c, d, e) {
            return d * Math.sin(b / e * (Math.PI / 2)) + c
        },
        easeInOutSine: function (a, b, c, d, e) {
            return - d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
        },
        easeInExpo: function (a, b, c, d, e) {
            return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c
        },
        easeOutExpo: function (a, b, c, d, e) {
            return b == e ? c + d : d * (- Math.pow(2, -10 * b / e) + 1) + c
        },
        easeInOutExpo: function (a, b, c, d, e) {
            return 0 == b ? c : b == e ? c + d : 1 > (b /= e / 2) ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (- Math.pow(2, -10 * --b) + 2) + c
        },
        easeInCirc: function (a, b, c, d, e) {
            return - d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
        },
        easeOutCirc: function (a, b, c, d, e) {
            return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
        },
        easeInOutCirc: function (a, b, c, d, e) {
            return 1 > (b /= e / 2) ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
        },
        easeInElastic: function (a, b, c, d, e) {
            var f = 1.70158,
                g = 0,
                h = d;
            if (0 == b) return c;
            if (1 == (b /= e)) return c + d;
            if (g || (g = .3 * e), Math.abs(d) > h) {
                h = d;
                var f = g / 4
            } else var f = g / (2 * Math.PI) * Math.asin(d / h);
            return - (h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g)) + c
        },
        easeOutElastic: function (a, b, c, d, e) {
            var f = 1.70158,
                g = 0,
                h = d;
            if (0 == b) return c;
            if (1 == (b /= e)) return c + d;
            if (g || (g = .3 * e), Math.abs(d) > h) {
                h = d;
                var f = g / 4
            } else var f = g / (2 * Math.PI) * Math.asin(d / h);
            return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
        },
        easeInOutElastic: function (a, b, c, d, e) {
            var f = 1.70158,
                g = 0,
                h = d;
            if (0 == b) return c;
            if (2 == (b /= e / 2)) return c + d;
            if (g || (g = e * .3 * 1.5), Math.abs(d) > h) {
                h = d;
                var f = g / 4
            } else var f = g / (2 * Math.PI) * Math.asin(d / h);
            return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + c : .5 * h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
        },
        easeInBack: function (a, b, c, d, e, f) {
            return void 0 == f && (f = 1.70158),
                d * (b /= e) * b * ((f + 1) * b - f) + c
        },
        easeOutBack: function (a, b, c, d, e, f) {
            return void 0 == f && (f = 1.70158),
                d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
        },
        easeInOutBack: function (a, b, c, d, e, f) {
            return void 0 == f && (f = 1.70158),
                1 > (b /= e / 2) ? d / 2 * b * b * (((f *= 1.525) + 1) * b - f) + c : d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
        },
        easeInBounce: function (a, b, c, d, e) {
            return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
        },
        easeOutBounce: function (a, b, c, d, e) {
            return 1 / 2.75 > (b /= e) ? d * 7.5625 * b * b + c : 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
        },
        easeInOutBounce: function (a, b, c, d, e) {
            return e / 2 > b ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c : .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
        }
    });